These functions are called direct because they open a direct connection between your machine and the NNTP server. The behavior of these functions is also affected by commonly understood variables (see Common Variables).
nntp-open-network-streamnetwork-onlynntp-open-tls-stream
;; "nntps" is port 563 and is predefined in our /etc/services
;; however, ‘gnutls-cli -p’ doesn't like named ports.
;;
(nntp "snews.bar.com"
(nntp-open-connection-function nntp-open-tls-stream)
(nntp-port-number 563)
(nntp-address "snews.bar.com"))
nntp-open-ssl-stream
;; "snews" is port 563 and is predefined in our /etc/services
;; however, ‘openssl s_client -port’ doesn't like named ports.
;;
(nntp "snews.bar.com"
(nntp-open-connection-function nntp-open-ssl-stream)
(nntp-port-number 563)
(nntp-address "snews.bar.com"))
nntp-open-netcat-streamnetcat program. You might wonder why this
function exists, since we have the default
nntp-open-network-stream which would do the job.
(One of) the reason(s) is that if you are behind a firewall
but have direct connections to the outside world thanks to a
command wrapper like runsocks, you can use it
like this:
(nntp "socksified"
(nntp-pre-command "runsocks")
(nntp-open-connection-function nntp-open-netcat-stream)
(nntp-address "the.news.server"))
With the default method, you would need to wrap your whole Emacs session, which is not a good idea.
nntp-open-telnet-streamnntp-open-netcat-stream, but uses
telnet rather than netcat.
telnet is a bit less robust because of things
like line-end-conversion, but sometimes netcat is simply not
available. The previous example would turn into:
(nntp "socksified"
(nntp-pre-command "runsocks")
(nntp-open-connection-function nntp-open-telnet-stream)
(nntp-address "the.news.server")
(nntp-end-of-line "\n"))